Describing bat-human contact through shared food in Bangladesh: A community case-control study

Background:

In Bangladesh, bats, humans, and livestock live in close proximity, with likely overlap in consumption of common food resources (e.g., date palm sap and various fruits). Pteropus bats in Bangladesh are reservoir hosts for Nipah virus, which is transmitted from bats to people through shared consumption of date palm sap and then can be transmitted from person-to-person. Given that Nipah virus is a pathogen with pandemic potential, increased understanding of potential transmission routes is highly valuable to design prevention strategies, such as reducing opportunities for human consumption of bat contaminated fruits and date palm sap.

Objective:
  • better understand consumption characteristics that put some villages at risk for Nipah outbreaks by contrasting villages that have had Nipah cases to those that have not
  • describe food consumption patterns and practices for bats, humans, and livestock, and compare interactions between groups over shared food resources
Hypotheses:
  1. Bats visit date palm sap trees more often than fruit trees. Additionally, in villages where date palm sap is harvested, bats consume date palm sap more often than fruits. We also expect that bats visit both date palm and fruit trees more often in case villages compared to control villages.
  2. In villages where cases of Nipah virus were identified, humans and bats have more similar fruit consumption behaviors compared to villages where no Nipah cases have been identified. Observed bat visits to date palm and fruit trees (collected using camera traps) match reported bat visits from village community surveys. We also expect to find differences in animal fruit consumption between case and control villages.
Methods:
  • Data collected between December 2011 - February 2012 and between December 2012 - February 2013
  • Three village types observed:
    • Case: villages with reported human infections of Nipah virus between 2001-2012
    • Near control: villages with no reported Nipah infections but within 50 km of a case village
    • Far control: villages with no reported Nipah infections and greater than 50 km from a case village
  • Up to 25 households were selected in each village and administered a structured survey on household demographics, date palm sap consumption practices, experience with observing and hunting bats, number of fruiting trees on the household premises, and behavior regarding eating fruit with animal bite marks off the ground
  • In villages where date palm sap collection is reported, 1-2 date palm trees were identified by villagers and equipped with a motion sensor-tripped infrared camera
  • In villages where residents identify an area where bats are feeding near the village near where domestic animals forage or people recently reported collecting dropped fruit, 1-2 fruit trees will be identified and equipped with a motion sensor-tripped infrared camera
Hypothesis 1:
  • Bats visit date palm trees more often than fruit trees.
  • Bats visit both date palm and fruit trees more often in case villages.
  • In villages where date palm sap is harvested, bats consume date palm sap more often than fruits.
Hypothesis 2:
  • In villages where cases of Nipah virus were identified, humans and bats have more similar fruit consumption behaviors compared to villages where no Nipah cases have been identified.
  • Observed bat visits to date palm and fruit trees (collected using camera traps) match reported bat visits from village community surveys.
  • We also expect to find differences in animal fruit consumption between case and control villages.
Part 1: Villages observed

Begin by examining the villages included in the study. All villages have community survey information, but only villages with active date palm sap collection had camera traps at date palm trees and only villages with bats feeding at fruit trees near human fruit consumption areas had camera traps at fruit trees.

Overall, 206 villages were included in the study: 60 case, 72 near control, and 74 far control villages were included. All had community surveys completed.

#  Total villages included in study, by village type
vil.total_long %>% 
  group_by(case_control_group) %>% 
  summarize(num_vil = n_distinct(Village_ID)) %>% 
  mutate(total_vil = sum(num_vil))
  • Only 41% (85/206) of villages included in the study had active date palm sap collection.
  • More villages, 57% (118/206), had bats visiting fruit trees in areas where bats fed near to where domestic animals forage or people recently reported collecting dropped fruit.
# number of villages with each type of data collection
v1 <- vil.total_long %>% 
  group_by(col_type) %>% 
  summarize(vil_observed = sum(col_yn)) %>% 
  mutate(vil_not_observed = 206 - vil_observed,
         total_vil = 206, 
         "perc_vil" = vil_observed/206*100)
## # A tibble: 3 × 5
##   col_type vil_observed vil_not_observed total_vil perc_vil
##   <fct>           <dbl>            <dbl>     <dbl>    <dbl>
## 1 dp.yn              85              121       206     41.3
## 2 f.yn              118               88       206     57.3
## 3 cs.yn             206                0       206    100
# number of villages with each type of data collection, by village type
v2 <- vil.total_long %>%
  group_by(case_control_group, col_type) %>%
  summarise(vil_observed=sum(col_yn), 
            total_vil = n()) %>% 
  mutate(vil_not_observed = total_vil - vil_observed, 
         "perc_vil" = vil_observed/total_vil*100)
## # A tibble: 9 × 6
## # Groups:   case_control_group [3]
##   case_control_group col_type vil_observed vil_not_observed total_vil perc_vil
##   <chr>              <fct>           <dbl>            <dbl>     <int>    <dbl>
## 1 case               dp.yn              27               33        60     45  
## 2 case               f.yn               45               15        60     75  
## 3 case               cs.yn              60                0        60    100  
## 4 control, far       dp.yn              32               42        74     43.2
## 5 control, far       f.yn               30               44        74     40.5
## 6 control, far       cs.yn              74                0        74    100  
## 7 control, near      dp.yn              26               46        72     36.1
## 8 control, near      f.yn               43               29        72     59.7
## 9 control, near      cs.yn              72                0        72    100
  • Date palms observed: comparable across village types (45% case, 36% near control, 43% far control)
  • Fruit trees observed: highest for case villages (75%), followed by near control (60%), and far control (41%).

  • 32% of villages had both date palm trees and fruit trees observed, 9% only date palm trees, 25% only fruit trees, and 34% no trees
# villages with each tree type observed
vil.total %>%
      group_by(Trees_observed) %>%
      summarise(n = n()) %>%
      mutate(totalN = (cumsum(n)),
             percent = round((n / sum(n)), 3))
# villages with each tree type observed, by village type
vil.total %>%
      group_by(case_control_group, Trees_observed) %>%
      summarise(n = n()) %>%
      mutate(totalN = (cumsum(n)),
             percent = round((n / sum(n)), 3))
  • near control and case villages had percentages of villages observed slightly lower for far control
  • case villages had the lowest % of villages with no trees observed, while far control had the highest

  • Of the 66 villages with both tree types, only 18% received bat visits to both tree types. 74% only had visits at date palm trees, 1.5% only had visits at fruit trees, and 6% had no visits.
  • Of villages with only one tree type, it was more common for date palm trees to be visited than fruit trees.
# villages with both fruit and bat visits, not both visits, or not both observations
all_vil %>%
      group_by(Trees_observed, yn_visits) %>%
      summarise(n = n()) %>%
      mutate(totalN = (cumsum(n)),
             percent = round((n / sum(n)), 3))

Deciding between the two following graphs for easier information display:

  • When assessing across village types, case and near control villages have similar trends, with villages with both tree types seeing more visits to only date palms than visits to both tree types.
# cumulative and average visit duration to fruit trees by village type
all_data %>% 
  filter(Number_of_visits > 0, Trees_observed == "Both") %>%
  group_by(case_control_group, dp_or_fruit) %>% 
  summarize(num_visits = n(),
            cum = sum(DurContT),
            q1 = quantile(DurContT, 0.25),
            median = median(DurContT),
            mean = mean(DurContT),
            q3 = quantile(DurContT, 0.75),
            max = max(DurContT))

For villages with both trees observed:

  • bats make more visits per tree to date palm trees than to fruit trees
  • bat visit contamination duration is higher for date palm trees than fruit trees across villages

# cumulative and average visit duration to trees by village type and bat type for villages with visits to both tree types
all_data %>% 
  filter(Number_of_visits > 0, Trees_observed == "Both") %>%
  group_by(case_control_group, dp_or_fruit, recode_P_NP) %>% 
  summarize(num_visits = n(),
            cum = sum(DurContT),
            q1 = quantile(DurContT, 0.25),
            median = median(DurContT),
            mean = mean(DurContT),
            q3 = quantile(DurContT, 0.75),
            max = max(DurContT))

Few visits to fruit trees, so focusing on date palm trees:

  • longer contamination duration for Pteropus at date palm trees in villages where both date palm trees and fruit trees were observed (N = 66)
  • similar durations for non-Pteropus, but higher for pteropus in case villages

Part 2: Date palm visits overview

As stated above, 85 (out of 206) villages had active date palm sap collection and date palm trees were subsequently observed for bat visits.

  • 160 date palm trees observed over 85 villages
  • 27 case villages, 26 near control villages, 32 far control villages
# examine number of villages and number of trees observed 
date_palm_vil %>% 
  group_by(case_control_group) %>% 
  summarize(num_vil = n_distinct(Village_ID),
            num_tree = n_distinct(Tree_number)) %>% 
  mutate("perc_vil" = num_vil/sum(num_vil)*100, 
         "perc_tree" = num_tree/sum(num_tree)*100) 
  • On average 2 tree were observed per village
# average number of trees observed per village
date_palm_vil %>% 
  group_by(Village_ID) %>% 
  summarize(num_tree = n_distinct(Tree_number)) %>% 
  select(num_tree) %>% 
  summary(n)
##     num_tree    
##  Min.   :1.000  
##  1st Qu.:2.000  
##  Median :2.000  
##  Mean   :1.906  
##  3rd Qu.:2.000  
##  Max.   :4.000
  • Little variation between village types for the number of trees observed per village
# average number of trees observed per village, by village type
date_palm_vil %>% 
  group_by(case_control_group, Village_ID) %>% 
  summarize(num_tree = n_distinct(Tree_number)) %>% 
  mutate(min = min(num_tree),
         q1 = quantile(num_tree, 0.25),
         median = median(num_tree),
         mean = mean(num_tree),
         q3 = quantile(num_tree, 0.75),
         max = max(num_tree)) %>% 
  select(-c(num_tree, Village_ID)) %>% 
  distinct()
  • Most villages with date palm trees observed had at least one tree that received a bat visit (91%)
# villages with bat visits
bat_vil_tot %>%
      group_by(yn_visit) %>%
      summarise(n = n()) %>%
      mutate(totalN = (cumsum(n)),
             percent = round((n / sum(n)), 3))
  • A higher percentages of case and near control villages had at least one date palm tree that received a bat visit (96%) compared to far control villages (81%)
# villages with bat visits, by village type
bat_vil_tot %>%
      group_by(case_control_group, yn_visit) %>%
      summarise(n = n()) %>%
      mutate(totalN = (cumsum(n)),
             percent = round((n / sum(n)), 3))
  • Overall, most date palm trees observed received at least one bat visit (80%)
# trees with bat visits
bat_tree_tot %>%
      group_by(yn_visit) %>%
      summarise(n = n()) %>%
      mutate(totalN = (cumsum(n)),
             percent = round((n / sum(n)), 3))
  • Case villages and near control villages had a higher % of trees visited than far control
# trees with no bat visits by village type
bat_tree_tot %>%
      group_by(case_control_group, yn_visit) %>%
      summarise(n = n()) %>%
      mutate(totalN = (cumsum(n)),
             percent = round((n / sum(n)), 3),
             cumpercent = round(cumsum(freq = n / sum(n)),3))
  • Because the number of visits to each tree is difficult to assess based on the visit assessment method used, visit contamination duration of each visit is used for comparison
  • While non-Pteropus bats represented a higher number of visits, the contamination duration of Pteropus visits is much longer than non-Pteropus bats
  • Cumulative contamination duration for Pteropus visits is similar across village types
  • The average contamination duration for Pteropus visits is higher in case villages, where less visits occurred but cumulative visit duration is similar
# cumulative and average visit duration by village type
date_palm_vil %>% 
  filter(Number_of_visits > 0) %>%
  group_by(case_control_group, recode_P_NP) %>% 
  summarize(num = n(),
            cum = sum(DurContT),
            q1 = quantile(DurContT, 0.25),
            median = median(DurContT),
            mean = mean(DurContT),
            q3 = quantile(DurContT, 0.75),
            max = max(DurContT))

Stay and contamination percentages by village type

# trees with no bat visits by village type
date_palm_vil %>%
  filter(Number_of_visits != 0) %>% 
  group_by(case_control_group, recode_P_NP) %>%
  summarise(pct_stays = mean(Number_of_stays), 
            n_stay = sum(Number_of_stays), 
            n_not_stay = sum(Number_of_stays == 0), 
            pct_cont = mean(Number_of_contaminations), 
            n_cont = sum(Number_of_contaminations), 
            n_not_cont = sum(Number_of_contaminations == 0), 
            pct_stay_cont = mean(ifelse(Number_of_stays == 1, 
                                        Number_of_contaminations, NA), na.rm = T), 
            n_stay_cont = sum(ifelse(Number_of_stays == 1, 
                                      Number_of_contaminations, NA), na.rm = T), 
            n_stay_not_cont = sum(ifelse(Number_of_stays == 1, 
                                          Number_of_contaminations == 0, NA), na.rm = T))
Part 3: Fruit tree visits overview

As stated above, 118 (out of 206) villages had fruit trees identified that were visited by bats located near the village and where animals/people consume dropped fruit, with fruit trees subsequently observed for bat visits.

  • 204 date palm trees observed over 118 villages
  • 45 case villages, 43 near control villages, 30 far control villages
# examine number of villages and number of trees observed 
fruit_data_vil  %>% 
  group_by(case_control_group) %>% 
  summarize(num_vil = n_distinct(Village_ID),
            num_tree = n_distinct(Tree_number)) %>% 
  mutate("perc_vil" = num_vil/sum(num_vil)*100, 
         "perc_tree" = num_tree/sum(num_tree)*100) 
  • out of 13 fruit tree types observed, only 5 had more than 2 trees observed
  • when asked, villagers often report bats visiting jujube, guava, star fruit, sapodilla, and banana -> these trees, by villager observation, have the most overlap between bat consumption, animal dropped fruit consumption, and human dropped fruit consumption
# number of fruit trees observed by species
tree_summary_vil <- fruit_data_vil %>% 
  group_by(case_control_group, Tree_type) %>%
  summarize(num_trees = n_distinct(Tree_number)) %>% 
  mutate("percent_trees" = num_trees/sum(num_trees)*100) %>% 
  dplyr::rename(tree_type = Tree_type)
  
tree_summary_vil_buffet <- fruit_data_vil %>% 
  left_join(all_data %>% dplyr::select(Tree_number, Trees_observed)) %>% 
  distinct() %>% 
  group_by(Trees_observed, case_control_group, Tree_type) %>%
  summarize(num_trees = n_distinct(Tree_number)) %>% 
  mutate("percent_trees" = num_trees/sum(num_trees)*100) %>% 
  dplyr::rename(tree_type = Tree_type)
## Joining, by = "Tree_number"
tree_summary_vil %>% 
  group_by(tree_type) %>% 
  summarise(num_trees2 = sum(num_trees)) %>% 
  arrange(-num_trees2)

  • Tree types observed at each village type are similar, with less guava trees observed at far control villages. However, less far control villages were observed overall
  • No jujube trees were observed in case buffet villages, though this was the most common tree observed in control buffet villages
## Scale for 'y' is already present. Adding another scale for 'y', which will
## replace the existing scale.

## Scale for 'y' is already present. Adding another scale for 'y', which will
## replace the existing scale.
## Warning: Removed 1 rows containing missing values (geom_bar).

  • On average 2 trees were observed per village
# average number of fruit trees observed per village
fruit_data_vil %>% 
  group_by(Village_ID) %>% 
  summarize(num_tree = n_distinct(Tree_number)) %>% 
  select(num_tree) %>% 
  summary(n)
##     num_tree    
##  Min.   :1.000  
##  1st Qu.:1.000  
##  Median :2.000  
##  Mean   :1.729  
##  3rd Qu.:2.000  
##  Max.   :3.000
  • Little variation between village types for the number of trees observed per village
# average number of fruit trees observed per village, by village type
fruit_data_vil %>% 
  group_by(case_control_group, Village_ID) %>% 
  summarize(num_tree = n_distinct(Tree_number)) %>% 
  mutate(min = min(num_tree),
         q1 = quantile(num_tree, 0.25),
         median = median(num_tree),
         mean = mean(num_tree),
         q3 = quantile(num_tree, 0.75),
         max = max(num_tree)) %>% 
  select(-c(num_tree, Village_ID)) %>% 
  distinct()
  • Most villages with fruit trees did not have a tree that received a bat visit (24% with visits)
# villages with no bat visits
bat_vil_tot_f %>%
      group_by(yn_visit) %>%
      summarise(n = n()) %>%
      mutate(totalN = (cumsum(n)),
             percent = round((n / sum(n)), 3),
             cumpercent = round(cumsum(freq = n / sum(n)),3))
  • This corresponds to only 16% of overall fruit trees across villages receiving a bat visit
# trees with no bat visits
bat_tree_tot_f %>%
      group_by(yn_visit) %>%
      summarise(n = n()) %>%
      mutate(totalN = (cumsum(n)),
             percent = round((n / sum(n)), 3),
             cumpercent = round(cumsum(freq = n / sum(n)),3))
  • A higher percentages of far control and near control village fruit trees received bat visits than case village fruit trees
# trees with no bat visits by village type
bat_tree_tot_f %>%
      group_by(case_control_group, yn_visit) %>%
      summarise(n = n()) %>%
      mutate(totalN = (cumsum(n)),
             percent = round((n / sum(n)), 3),
             cumpercent = round(cumsum(freq = n / sum(n)),3))

Trees that received visits by buffet and village type:

  • of the 13 tree types that were observed, 6 types received visits
  • a slightly lower percentage of trees in buffet villages received at least bat visit (12%) compared to fruit tree only villages (21%)
  • in buffet villages, the highest percentage of trees received at least one bat visit in far control villages, while in fruit only villages the highest percentage of trees received at least one bat visit in near control villages
# total trees visits and trees that received visits by buffet village type
bat_tree_tot_f %>% 
  left_join(all_data %>% dplyr::select(Tree_number, Trees_observed)) %>% 
  distinct() %>% 
  mutate(yn_visit_rc = case_when(yn_visit == "yes" ~ 1,
                                 TRUE ~ 0)) %>% 
  group_by(Trees_observed) %>% 
  summarise(n_tree = n(), 
            n_tree_visited = sum(yn_visit_rc)) %>%
  mutate(total_n_tree = (cumsum(n_tree)), 
         percent_n_tree_visit = round((n_tree_visited / n_tree), 3))
## Joining, by = "Tree_number"
# total trees visits and trees that received visits by buffet village type and village type
bat_tree_tot_f %>% 
  left_join(all_data %>% dplyr::select(Tree_number, Trees_observed)) %>% 
  distinct() %>% 
  mutate(yn_visit_rc = case_when(yn_visit == "yes" ~ 1,
                                 TRUE ~ 0)) %>% 
  group_by(Trees_observed, case_control_group) %>% 
  summarise(n_tree = n(), 
            n_tree_visited = sum(yn_visit_rc)) %>%
  mutate(total_n_tree = (cumsum(n_tree)), 
         total_n_tree_visit = (cumsum(n_tree_visited)), 
         percent_n_tree_visit = round((n_tree_visited / n_tree), 3))
## Joining, by = "Tree_number"
f.labs <- c("Both tree types village", "Fruit tree only village")
names(f.labs) <- c("Both", "Fruit tree only")

bat_tree_tot_f %>% 
  left_join(all_data %>% dplyr::select(Tree_number, Trees_observed)) %>% 
  distinct() %>% 
  filter(Tree_type == "Fig" |
          Tree_type == "Banana" |
          Tree_type == "Jujube" |
          Tree_type == "Star fruit" |
          Tree_type == "Sapodilla" |
          Tree_type == "Guava") %>%
  ggplot(aes(x=Tree_type, fill = yn_visit)) +
    geom_bar(stat = "count", show.legend = TRUE, width = 0.7) +
  facet_grid(case_control_group ~ Trees_observed, 
             labeller = labeller(Trees_observed = f.labs)) +
    labs(y = "Number of trees", 
       x = "Tree types observed", 
       title = "Number of trees observed and number of trees receiving at least 1 bat visit \nseparated by village type and the tree types observed in each village") +
   theme(axis.title.y = element_text(vjust = 1), 
         axis.title = element_text(size = 10), 
         plot.title = element_text(size = 12), 
         axis.text.x = element_text(angle = 45, hjust = 1)) 
## Joining, by = "Tree_number"

# # overall cumulative and average visit durations
# fruit_data_vil %>% 
#   filter(Number_of_visits > 0) %>%
#   summarize(num = n(),
#             cum = sum(DurContT),
#             q1 = quantile(DurContT, 0.25),
#             median = median(DurContT),
#             mean = mean(DurContT),
#             q3 = quantile(DurContT, 0.75),
#             max = max(DurContT))
  • The average contamination duration for pteropus visits is higher in case and near control villages than far control villages
# cumulative and average visit duration to fruit trees by village type
all_data %>%
  filter(Number_of_visits > 0, 
         dp_or_fruit == "Fruit") %>%
  group_by(Trees_observed, case_control_group, recode_P_NP) %>% 
  summarize(num_visits = n(),
            cum = sum(DurContT),
            q1 = quantile(DurContT, 0.25),
            median = median(DurContT),
            mean = mean(DurContT),
            q3 = quantile(DurContT, 0.75),
            max = max(DurContT))

Hypothesis 1:
  • Bats visit date palm sap trees more often than fruit trees. –> yes
  • Bats visit both date palm and fruit trees more often in case villages. –> yes, measured by visit contamination duration
  • In villages where date palm sap is harvested, bats consume date palm sap more often than fruits. –> yes
Hypothesis 2:
  • In villages where cases of Nipah virus were identified, humans and bats have more similar fruit consumption behaviors compared to villages where no Nipah cases have been identified.
  • Observed bat visits to date palm and fruit trees (collected using camera traps) match reported bat visits from village community surveys.
  • We also expect to find differences in animal fruit consumption between case and control villages.
Community Survey data
  • 5056 total survey responses were collected
  • On average 25 surveys responses were collected per village (min-max: 12-26).
# respondents per village
fruit_survey %>% 
  group_by(Village_ID) %>% 
  summarise(participants_per_village = n_distinct(dataid)) %>% 
  summary(participants_per_village)
##    Village_ID   participants_per_village
##  Min.   :1002   Min.   :12.00           
##  1st Qu.:1066   1st Qu.:25.00           
##  Median :2038   Median :25.00           
##  Mean   :1985   Mean   :24.54           
##  3rd Qu.:3010   3rd Qu.:25.00           
##  Max.   :3066   Max.   :26.00
# respondents by village type
fruit_survey %>% 
  group_by(case_control_group) %>% 
  summarise(participants_per_villagetype = n_distinct(dataid))

There are four main questions that assess fruit consumption by bari members, bats, and animals separated by tree type.

  • Do members of your bari eat any [insert fruit] off the ground? (q5_frt#_5_4)
  • Do members of your bari eat any [insert fruit]? (q5_frt#_5_3)
  • Do domestic mammals (cow,sheep,goat,pig,dog,cat)eat [insert fruit] jam off ground? (q5_frt#_5_5)
  • Do bats eat any [insert fruit]? (q5_frt#_5_7)

The following questions also provide information on the trees available for bats to consume:

  • Do any fruit trees grow in or around your bari? (q5_1)
  • How many [insert fruit] trees grow in or around your bari? (q5_frt#_5_2)

Do any fruit trees grow in or around your bari?

  • The vast majority of respondants report at least 1 fruit tree growing in their bari, similar across village types.
# Respondants reporting any fruit tree presence in bari
fruit_survey %>% 
  group_by(case_control_group) %>% 
  summarise(total_bar = n(), 
            yes_tree = sum(q5_1, na.rm= TRUE)) %>%
  mutate(percent = round((yes_tree / total_bar), 3))

How many [insert fruit] trees grow in or around your bari?

  • Mango, jackfruit, and banana are the most commonly cultivated trees present across baris. However, in terms of numbers of trees, more individual betel, banana, and manngo trees are present in an average bari
  • still need to update for winter fruiting trees

  • respondents reporting tree presence in bari is not dissimilar across buffet village types: mango, jackfruit, guava, banana, and coconut were the most commonly planted trees across baris
  • in villages with no trees observed, baris in near control villages had a high number of betel trees

Do members of your bari eat any [insert fruit] off the ground?

  • need to amend to only winter fruiting trees

Do members of your bari eat any [insert fruit]?

  • need to amend to only winter fruiting trees

Do domestic mammals (cow,sheep,goat,pig,dog,cat) eat [insert fruit] off ground?

  • need to amend to only winter fruiting trees

Do bats eat any [insert fruit]?

  • need to amend to only winter fruiting trees

Of the tree types included on the survey, only 6 had visits recorded using camera traps.

  • bat reported fruit consumption and human reported fruit consumption are similar for each tree type
  • there is little consumption variation between village types
## Joining, by = c("case_control_group", "fruit", "measure")
## Joining, by = c("case_control_group", "fruit", "measure")
## Joining, by = c("case_control_group", "fruit", "measure")
## Joining, by = c("case_control_group", "fruit", "measure")

When examining bat fruit consumption more closely, for the 6 tree types that received bat visits, there is some mild difference in village types.

  • for banana, buroi, and guava, consumption is slightly higher in case and near control villages than far control villages
  • for date palm, consumption is higher in case villages than control villages
# plot bat fruit consumption with x-axis ranked by the average
rank_b_fruit_grouped_mean %>%
  filter(fruit == "banana" | fruit == "date.palm"| fruit == "star.fruit"| fruit == "sofeda" | fruit == "guava" | fruit == "buroi") %>% 
  ggplot(aes(x = fruit, y = bat_fruit, color = case_control_group)) +
  geom_jitter(height = 0, width = 0.2, alpha = 0.8) +
  labs(x = "Fruit type",
       y = "Proportion of baris with bats\nconsuming fruit",
       title = "Proportion of respondants reporting bat consumption\nof fruits by village type") +
  theme_bw() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1),
        axis.title.y = element_text(vjust = 1)) +
  scale_color_manual(
    name = "Village type",
    values = c(
      "case" = "#E69F00",
      "control, far" = "#56B4E9",
      "control, near" = "#009E73"
    )
  )